home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / Texteditors / Origami / bindings / fun / overwdel < prev    next >
Encoding:
Text File  |  1996-09-27  |  2.0 KB  |  68 lines

  1. @if-using not(ocl-file-overwdel)
  2.    @use (ocl-file-overwdel)
  3.    ;OCL{{{}}}
  4.    ;OCL{{{  reference descriptoin
  5.    @if-using ( FUN-REFERENCE ) ; 1 ;
  6.    Change the behaviour of  the  function  delete-previous-character  (and
  7.    delete-character,  if  library delchar is already  read)  in  overwrite
  8.    mode.
  9.  
  10.    Instead of deleting the character, it will be overwritten by  a  single
  11.    space  character.  The  original   functions   can   be   accessed   by
  12.    `raw-delete-previous-character' (and `raw-delete-character').
  13.    @fi
  14.    ;OCL}}}
  15.    ;OCL{{{  variables
  16.    ( defvar ( overwdel-x ) )
  17.    ;OCL}}}
  18.    ;OCL{{{  redefine delete-previous-character
  19.    ;OCL{{{  reference
  20.    @if-using ( FUN-REFERENCE ) ; 2 ; overwpdel
  21.    ;OCL{{{  @overwd-mac-ref delete-previous-character
  22.    Change the default behaviour, if mode overwrite is active.  In  this
  23.    case, the character left from the cursor will be replaced by a space
  24.    and the cursor is moved to it.
  25.    ;OCL}}}
  26.    @fi
  27.    ;OCL}}}
  28.    ( defmac raw-delete-previous-character ( delete-previous-character ) )
  29.    ( undeclare ( delete-previous-character ) )
  30.    ( deffun delete-previous-character
  31.       ( if and(test-overwrite not(in-prompt))
  32.          ( set overwdel-x store-pos
  33.            backward-character
  34.            if <>(store-pos overwdel-x)
  35.             ( "  ;
  36.               set overwdel-x -(overwdel-x 1)
  37.               goto overwdel-x
  38.             )
  39.            fi
  40.          )
  41.         else
  42.          ( raw-delete-previous-character )
  43.         fi
  44.       )
  45.    )
  46.    ;OCL}}}
  47.    @if-using (ocl-file-delchar)
  48.       ;OCL{{{  redefine delete-character
  49.       ( defmac raw-delete-character ( delete-character ) )
  50.       ( undeclare ( delete-character ) )
  51.       ( deffun delete-character
  52.          ( if and(test-overwrite not(in-prompt))
  53.             ( set overwdel-x store-pos
  54.               "  ;
  55.               goto overwdel-x
  56.             )
  57.            else
  58.             ( raw-delete-character )
  59.            fi
  60.          )
  61.       )
  62.       ;OCL}}}
  63.    @fi
  64.    ;OCL{{{  undeclares
  65.    ( undeclare ( overwdel-x ) )
  66.    ;OCL}}}
  67. @fi
  68.